home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
c
/
cd_mci.exe
/
MCI.H
< prev
Wrap
C/C++ Source or Header
|
1993-01-07
|
2KB
|
78 lines
/*
MCI.H
Klasse fⁿr die Ansteuerung des MCI Interfaces.
22.08.92 Norbert Unterberg
*/
#ifndef _MCI_H
#define _MCI_H
class MCI {
UINT wDeviceID;
DWORD dwCallback;
LPSTR szAlias;
protected:
DWORD mciCommand(UINT wMessage, DWORD dwFlags, const void *param)
{ return mciSendCommand(wDeviceID, wMessage, dwFlags, (DWORD)(LPVOID)param); }
virtual MCI_OPEN_PARMS *GetOpenParams();
virtual void DeleteOpenParams(MCI_OPEN_PARMS *mci) { delete mci; }
virtual DWORD GetOpenFlags(MCI_OPEN_PARMS *mci);
virtual MCI_GENERIC_PARMS *GetGenericParams();
DWORD GetStatus(DWORD dwItem, DWORD dwTrack = 0);
DWORD Set(DWORD dwItem, DWORD dwValue = 0);
public:
DWORD Open(char *alias, DWORD dwFlags = 0);
DWORD Close(DWORD dwFlags = 0);
DWORD Play(DWORD dwFlags = 0, DWORD from = 0, DWORD to = 0);
DWORD Seek(DWORD dwFlags, DWORD to);
DWORD Stop(DWORD dwFlags = 0);
UINT CurrentTrack()
{ return GetStatus(MCI_STATUS_CURRENT_TRACK); }
DWORD Position(UINT track = 0)
{ return GetStatus(MCI_STATUS_POSITION, track); }
DWORD Length(UINT track = 0)
{ return GetStatus(MCI_STATUS_LENGTH, track); }
DWORD Mode()
{ return GetStatus(MCI_STATUS_MODE); }
DWORD NumberOfTracks()
{ return GetStatus(MCI_STATUS_NUMBER_OF_TRACKS); }
DWORD TimeFormat()
{ return GetStatus(MCI_STATUS_TIME_FORMAT); }
DWORD StartPosition()
{ return GetStatus(MCI_STATUS_START); }
DWORD Ready()
{ return GetStatus(MCI_STATUS_READY); }
DWORD SetTimeFormat(DWORD tf)
{ return Set(MCI_SET_TIME_FORMAT, tf); }
DWORD OpenDoor()
{ return Set(MCI_SET_DOOR_OPEN); }
DWORD CloseDoor()
{ return Set(MCI_SET_DOOR_CLOSED); }
MCI(HWND hwnd);
//virtual ~MCI();
};
class CDAudio : public MCI {
protected:
virtual MCI_OPEN_PARMS *GetOpenParams();
virtual DWORD GetOpenFlags(MCI_OPEN_PARMS *mci);
public:
CDAudio(HWND hwnd) : MCI(hwnd) {}
BOOL MediaPresent()
{ return (BOOL)GetStatus(MCI_STATUS_MEDIA_PRESENT); }
};
#endif